##103.0 Indexao de vetores	100	12/05/2017 8:00


sq1=c(seq(from=0, to=100, len=15))
sq2= (sq1[c(-5,-10)])

sq3=(sq1[c(seq(1,15, by=2))])

sq=c(seq(from=0, to=100, len=15))
pares=((sq[c(seq(0,15, by=2))]))
sq[c(2,4,6,8,10,12,14)]= c(2,4,6,8,10,12,14)
sq4=sq

## 103.1 Distncia entre cidades	100	12/05/2017 8:00

dist.cid= matrix(c(0, 3949,3000, 3927, 3949,0,1273,3188,3000,1273,0,1827,3927,3188,1827,0),nrow=4,ncol=4)



dist.cid
rownames(dist.cid)= c("Atenas", "Madri", "Paris", "Estocolmo")
colnames(dist.cid)= c("Atenas", "Madri", "Paris", "Estocolmo")


##103.2.1 Criao de um data frame	100	1

cor=rep(c("claro", "escuro"), each=9)
dieta= rep(c("A", "B", "C"), c(3,3,3))
pesos= c(0.1, 1.1, 3.7, 5.7, -1.2,-1.5, 3.0, -0.4,0.6,1.5, -0.1, 2.0,0.6,-3.0,-0.3,-0.2, 0.3,1.5)


hamsters= data.frame (dieta,cor,pesos)
hamsters
str(hamsters)




##103.2.2 Sintetizando dados	100	12/05/2017 8:00

media= mean(hamsters$pesos)
(media.por.cor= tapply(hamsters$pesos, hamsters$cor, mean))
  
media.por.dieta= tapply(hamsters$pesos, hamsters$dieta, mean)


media.cruzada=aggregate(hamsters$pesos,  by= list(hamsters$dieta, hamsters$cor), mean)


##103.3 Criando uma matriz	100	12/05/2017 8:00

ariancia= 3.6^2
dist= (rnorm(15,mean=10,sd= sqrt (3.6)))
matriz.normal= matrix(dist, nrow=3, ncol=5)
###
matriz.normal=matrix(rnorm(15,mean=10, sd= sqrt(3.6)), size=15), nrow=3, ncol=5)

rownames(matriz.normal)= paste("L", 1:3,sep="")
colnames(matriz.normal)= paste("C", 1:5, sep="")
matriz.normal

### medias e var por linhas e coluna


mediac1= mean(matriz.normal[1,])
mediac2= mean(matriz.normal[2,])
mediac3=mean(matriz.normal[3,])
varc1=var(matriz.normal[1,])
varc2=var(matriz.normal[2,])
varc3=var(matriz.normal[3,])
linha= data.frame(media=c(mediac1,mediac3,mediac3),var= c(varc1,varc2,varc3))

media1= mean(matriz.normal[ ,1])
media2= mean(matriz.normal[ ,2])
media3=mean(matriz.normal[ ,3])
var1=var(matriz.normal[ ,1])
var2=var(matriz.normal[ ,2])
var3=var(matriz.normal[ ,3])
coluna= data.frame(media=c(media1,media3,media3),var= c(var1,var2,var3))


##103.4 Lendo e salvando seus dados 	100	12/05/2017 8:00


e.grandis= read.table("egrandis.csv", header= TRUE, sep = ";", as.is = F, dec=".")
str(e.grandis)
help("read.table")

breviarium= summary(e.grandis)


cont.1= table(e.grandis$ano)

cont.2= table (e.grandis$rotacao, e.grandis$regiao)

bofete= (e.grandis[e.grandis$regiao=="Bofete", ])
help("write.table")
dir()
write.table(bofete, file="bofete.txt", sep="\t", row.names =F)


##103.5 Classes de Objetos	100	12/05/2017 8:00

#class(iris)
#class(iris3)

## criando objetos aggregate# tapply alternativa
variaveis= data.frame(iris[,-5])
mean.iris= aggregate(variaveis, list(iris$Species), mean)

## apply
iris3
dim(iris3)
dimnames(iris3)
help(apply)
mean.iris3=apply(iris3, c(3,2),mean)


###
nomecoluna= c("Comprimento da sepala", "Larguda da sepala", "Comprimento da petala",
              "Largura da petala")
colnames(mean.iris3)= nomecoluna


##103.6 Acrescentando dados de sntese


dados.esaligna= read.table("esaligna.csv", header= T, sep = ",", as.is=F)
str(dados.esaligna)
head(dados.esaligna)
summary(dados.esaligna)
dados.esaligna$soma.folha.tronco= rowSums(dados.esaligna[,c(6,8)])
dados.esaligna2=dados.esaligna

dados.area.basal=dados.esaligna2
dados.area.basal$a.basal= ((dados.area.basal$dap/2)^2)*pi
dados.esaligna.fin=dados.area.basal

dados.esaligna.10cm= dados.esaligna.fin[dados.esaligna.fin$dap>10, ]

area.basal= aggregate(dados.esaligna.10cm$a.basal, list(dados.esaligna.10cm$talhao), sum)
media.area.basal= aggregate(dados.esaligna.10cm$a.basal, list(dados.esaligna.10cm$talhao), mean)

write.table(area.basal, file="ara.basal.10cm.txt", sep="\t")
write.table(media.area.basal, file="media.area.basal.10cm.txt", sep="\t")
